<?php 


defined( '_JEXEC' ) or die( 'Restricted Access' );
jimport( 'joomla.application.component.model' );

class ShopModelNew_Category extends JModel // редактирование и создание новой категории
{	
	var $_data;
    var $_id;
	
	
	
	function setId($id) // если редактируем категорию , то устанавливаем id редактируемой категории
    {
        $this->_id = $id;
        $this->_data = null;
    }

	function getData() // получение инфы из базы
	{
			if(empty($this->_data))
			{
				$query = "SELECT * 
						  FROM #__shop_categories
						  WHERE id=".$this->_id;
				$this->_db->setQuery($query);
				$this->_data = $this->_db->loadObject();
			}
			return $this->_data;
	}
	
	function store($data) // сохраниение информации в базе
	{
		$db= &JFactory::getDBO();
		$query = "SELECT * 
                    FROM #__shop_categories
                    WHERE id=".(int)$data['id'];
		$db->setQuery($query);
		$old_cat = $db->loadObject();
		$is_new = $db->loadResult();
		$row = $this->getTable('categories', 'ShopTable');
		$row->bind($data);
		$ordering = $row->getNextOrder();
		
		$data['description'] = JRequest::getVar( 'description', '', 'post', 'string', JREQUEST_ALLOWRAW );
		$data['description'] = str_ireplace('<BR mce_bogus="1">','',$data['description']);
		if($data['alias'] == ''){
			$alias = preg_replace('#[\\.,;:-]*#Uis', '', $data[name]);
			$alias = str_ireplace(' ','-',$alias);
			$data['alias'] = $this->_translate($alias);
		}
		if($is_new != null) // если редактирование
		{
                    $query = "UPDATE #__shop_categories SET
                        name='".mysql_real_escape_string($data['name'])."',
                        title='".mysql_real_escape_string($data['title'])."',
                        description='".mysql_real_escape_string($data['description'])."',
                        published='".mysql_real_escape_string($data['published'])."',
                        alias='".$data['alias']."',
                        metatitle='".mysql_real_escape_string($data['metatitle'])."',
                        metadesc='".mysql_real_escape_string($data['metadesc'])."',
                        metakey='".mysql_real_escape_string($data['metakey'])."',
                        metadata='".mysql_real_escape_string($data['metadata'])."'
                        WHERE id=".$data['id'];
                    $db->setQuery($query);
                    $db->query();
                    if ($data['alias'] == $old_cat->alias) return true;
                    //$db->setQuery("SELECT * FROM #__redirection WHERE locate('id=".$data[id]."',newurl)>0 AND locate('view=category',newurl)>0");
                    /* изменяем название ЧПУ ссылки категории */
                    $db->setQuery("SELECT * FROM #__redirection WHERE locate('".$old_cat->alias."',oldurl)>0");
                    $redirection = $db->loadObjectList();
                    foreach($redirection as $redirect){
                        $sReplace = str_ireplace($old_cat->alias,$data['alias'],$redirect->oldurl);

                        $sql = "UPDATE #__redirection SET
                        oldurl='".$sReplace."'
                        WHERE oldurl = '{$redirect->oldurl}'";
                        $db->setQuery($sql);
                        $db->query();
                        $upd = $db->getAffectedRows();
                        //printu($sql);
                    }
                    //die;
                    return true;
		}
		else // если создание новой
		{
			$query = "INSERT INTO #__shop_categories (name,title,description,published,ordering,alias,metatitle,metadesc,metakey,metadata) VALUES ('".mysql_real_escape_string($data[name])."','".mysql_real_escape_string($data[title])."','".mysql_real_escape_string($data[description])."','".mysql_real_escape_string($data[published])."','".$ordering."','".$data[alias]."','".mysql_real_escape_string($data[metatitle])."','".mysql_real_escape_string($data[metadesc])."','".mysql_real_escape_string($data[metakey])."','".mysql_real_escape_string($data[metadata])."')";
			$db->setQuery($query);
			$db->query();
			return true;
		
		}
			
	}
	function _translate($title)
	{
		$tbl= array(
			'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ж'=>'g', 'з'=>'z',
			'и'=>'i', 'й'=>'y', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p',
			'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f', 'ы'=>'i', 'э'=>'e', 'А'=>'A',
			'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ж'=>'G', 'З'=>'Z', 'И'=>'I',
			'Й'=>'Y', 'К'=>'K', 'Л'=>'L', 'М'=>'M', 'Н'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R',
			'С'=>'S', 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Ы'=>'I', 'Э'=>'E', 'ё'=>"yo", 'х'=>"h",
			'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh", 'щ'=>"shch", 'ъ'=>"", 'ь'=>"", 'ю'=>"yu", 'я'=>"ya",
			'Ё'=>"YO", 'Х'=>"H", 'Ц'=>"TS", 'Ч'=>"CH", 'Ш'=>"SH", 'Щ'=>"SHCH", 'Ъ'=>"", 'Ь'=>"",
			'Ю'=>"YU", 'Я'=>"YA", ' '=>"-", '('=>'', ')'=>'', ','=>'', '.'=>''
			);

		$translate = mb_strtolower(strtr($title, $tbl));
		return $translate;
	}
}
?>